package com.project.mapper;

import com.project.bean.CutPageBean;
import com.project.bean.UserBean;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface IUserMapper {
    /**
     * 添加用户
     * @param user 用户对象
     * @return 如果用户名在数据库表中已存在，不允许添加，返回false，如果用户名不存在，则允许添加，返回true
     */
    boolean add(UserBean user);

    /**
     * 通过用户名查找用户对象
     * @param userName 用户名
     * @return 用户对象，如果找不到，返回null
     */
   UserBean findByUserName(String userName);

    /**
     * 删除用户
     * @param userId 用户编号
     */
    void del(Integer userId);

    /**
     * 修改密码
     * @param userId 用户编号
     * @param newPassword 新密码
     */
    void updatePwd(@Param("userId") Integer userId,@Param("newPassword") String newPassword);

    /**
     * 修改用户等级
     * @param userId 用户编号
     * @param newGrade 新等级
     */
    void updateGrade(@Param("userId")Integer userId,@Param("newGrade") String newGrade);

    /**
     * 登录
     * @param userName 用户名
     * @param password 密码
     * @return 用户对象，如果登陆失败，返回null
     */
    UserBean login(@Param("userName") String userName,@Param("password") String password);

    /**
     * 通过id查找用户
     * @param userId 用户id
     * @return 用户对象
     */
    UserBean findById(Integer userId);


    /**
     *查询当前页数据
     * @param start 起始位置
     * @param pageSize 页码范围
     * @return 当前页学生集合
     */
    List<UserBean> cutByList(@Param("start") int start, @Param("pageSize") int pageSize);

    /**
     * 获取总记录数
     * @return 总记录数
     */
   int getTotal();

}
